/**
 * SpelerDeelname
 * @author Tim en de rest
 *
 */


public class SpelerDeelname extends Deelname {
	private Speler speler;
	private double insurance = 0;
	private double inzet;
	//private boolean split = false; ik snap het niet wat heb eraan?
	
	
	public SpelerDeelname(Speler s){
		super();
		speler = s;
	}
	/**
	 * Alternatieve constructor die aangeroepen word bij split
	 * @param k
	 * @param inz
	 * @param s
	 * @param hand
	 */
	
	public SpelerDeelname(Kaart k,double inz,Speler s, int hand){
		super();
		speler = s;
		inzet = inz;
		kaarten.add(k);
		this.hand = hand;
	}
	/**
	 *Verliest trek verloren bedrag van score af
	 *@param d 
	 */	
	
	public void verliest(double d) {
		score -= d;
		
	}
	/**
	 * Telt gewonnen bedrag bij score op
	 * @param d
	 */

	
	public void wint(double d) {
		score += d;
		speler.saldoBij(2 * d);
		
	}
	/**
	 * Telt gewonnen bedrag bij score op
	 * @param d
	 */

	
	public void wintInsurance(double d)
	{	score += (2 * d);
		speler.saldoBij(3 * d);
	}
	/**
	 * Telt gewonnen bedrag bij score op
	 * @param d
	 */

	
	public void wintBlackjack(double d)
	{	score += (1.5 * d);
		speler.saldoBij(2.5 * d);
	}
	/**
	 * Zet de inzet van de speler.
	 * @param inzet
	 * @throws GeenGeldException
	 */
	public void setInzet(double inzet)throws GeenGeldException{
		if(inzet <= speler.getSaldo()){
			this.inzet = inzet;
			speler.saldoAf(inzet);
		}
		else
			throw new GeenGeldException("Je hebt niet genoeg geld.");
		
		
	}
	
	public double getInzet(){
		return inzet;
	}
	/**
	 * Zet de insurance dat is de helft van de inzet dus.
	 * @throws GeenGeldException
	 */
	public void setInsurance()throws GeenGeldException{
		if(inzet/2 <= speler.getSaldo()){
			if(insurance == 0){
				insurance = inzet/2;
				inzet += insurance;
				speler.saldoAf(insurance);
			}
		}
		else
			throw new GeenGeldException("Je hebt niet genoeg geld.");
	}
	
	public double getInsurance(){
		return insurance;
	}
	/**
	 * Doubledown verdubbelt het saldo en trekt het van de spelr zn saldo af
	 * @throws GeenGeldException
	 */
	public void doubleDown()throws GeenGeldException{
		if(inzet <= speler.getSaldo()){
			speler.saldoAf(inzet);
			inzet += inzet;
			insurance += insurance;
		}
		else
			throw new GeenGeldException("Je hebt niet genoeg geld.");
	}
	public String getNaam(){
		return speler.getNaam();
	}
	public double getSaldo(){
		return speler.getSaldo();
	}
	public Speler getSpeler(){
		return speler;
	}
}
	
	



